# required cmake version
cmake_minimum_required(VERSION 3.10)                # 编译该工程最小的CMake版本，这里我是乱写的，反正高版本肯定比低版本功能强

# CMakeLists.txt for gelu project
project(gelu)                                       # 项目的名字，可以随便取，这里我们实现的是gelu激活函数，所以取名gelu
 
add_subdirectory(kernel)                            # 添加子目录的名字，我们有一个plugin的子目录，里面是gelu的CUDA实现
set (EXTRA_LIBS ${EXTRA_LIBS} plugin)               # 类似于变成语言里面的赋值，可以理解为：EXTRA_LIBS = EXTRA_LIBS + plugin


add_library(gelu SHARED geluPlugin.cpp)             # add_library表示编译生成库，SHARED/STATIC表示生产动态/静态库，gelu表示库的名字
add_compile_options(-std=c++11 -w)                  # 编译参数，-w表示关闭编译过程中的所有警告

target_link_libraries (gelu ${EXTRA_LIBS})          # 将plugin下面的CUDA库连接到gelu上
